package com.jishuo.nontax.bfc.tlq;

import java.util.HashMap;
import java.util.Map;

/**
 * 消息码值定义
 */
public class InfoCode {
    private static Map<String, Integer> infoMap = new HashMap<>();

    static {
        // 电子缴款书
        infoMap.put("INFO_2112_1", 1); // 正常
        infoMap.put("INFO_2112_2", 2); // 未配置本银行账户
        infoMap.put("INFO_2112_3", 3); // 已收款
        infoMap.put("INFO_2112_4", 4); // 单据不存在
        infoMap.put("INFO_2112_5", 5); // 对账不成功，账户停用
        infoMap.put("INFO_2112_6", 6); // 已被他行获取
        infoMap.put("INFO_2112_7", 7); // 验签未通过
        infoMap.put("INFO_2112_8", 8); // 报文数据不正确
        // 缴款书
        infoMap.put("INFO_222_1", 1); // 正常
        infoMap.put("INFO_222_2", 2); // 账户类型不符
        infoMap.put("INFO_222_3", 3); // 已收款
        infoMap.put("INFO_222_4", 4); // 票据不可用
        infoMap.put("INFO_222_5", 5); // 对账不成功，账户停用
        infoMap.put("INFO_222_6", 6); // 验签未通过
        infoMap.put("INFO_222_7", 7); // 缴款书超期
        infoMap.put("INFO_222_8", 8); // 报文数据不正确
        // 缴款书手工票
        infoMap.put("INFO_225_1", 1); // 正常
        infoMap.put("INFO_225_2", 2); // 票据已用
        infoMap.put("INFO_225_3", 3); // 票据已核销
        infoMap.put("INFO_225_4", 4); // 票据不存在
        infoMap.put("INFO_225_5", 5); // 对账不成功，账户停用
        infoMap.put("INFO_225_6", 6); // 验签未通过
        infoMap.put("INFO_225_7", 7); // 报文数据不正确
        // 退付书
        infoMap.put("INFO_232_1", 1); // 正常
        infoMap.put("INFO_232_2", 2); // 账户类型不符
        infoMap.put("INFO_232_3", 3); // 已收款
        infoMap.put("INFO_232_4", 4); // 票据不可用
        infoMap.put("INFO_232_5", 5); // 验签未通过
        infoMap.put("INFO_232_6", 6); // 报文数据不正确
        // 学校缴费
        infoMap.put("INFO_262_1", 1); // 正常
        infoMap.put("INFO_262_2", 2); // 账户类型不符
        infoMap.put("INFO_262_3", 3); // 已收款
        infoMap.put("INFO_262_4", 4); // 对账不成功，账户停用
        infoMap.put("INFO_262_5", 5); // 验签未通过
        infoMap.put("INFO_262_6", 6); // 票据不存在
        // 处罚决定书
        infoMap.put("INFO_272_1", 1); // 正常
        infoMap.put("INFO_272_2", 2); // 未配置本银行账户
        infoMap.put("INFO_272_3", 3); // 已收款
        infoMap.put("INFO_272_4", 4); // 票据不存在
        infoMap.put("INFO_272_5", 5); // 对账不成功，账户停用
        infoMap.put("INFO_272_6", 6); // 已被他行获取
        infoMap.put("INFO_272_7", 7); // 验签未通过
        infoMap.put("INFO_272_8", 8); // 报文数据不正确
        // 通用罚没滞纳金
        infoMap.put("INFO_275_1", 1); // 正常
        infoMap.put("INFO_275_2", 2); // 处罚时间格式错误
        infoMap.put("INFO_275_3", 3); // 已收款
        infoMap.put("INFO_275_4", 4); // 对账不成功，账户停用
        infoMap.put("INFO_275_5", 5); // 验签未通过
        infoMap.put("INFO_275_6", 6); // 报文数据不正确
        // 国库
        infoMap.put("INFO_282_1", 1); // 正常
        infoMap.put("INFO_282_2", 2); // 账户类型不符
        infoMap.put("INFO_282_3", 3); // 已收款
        infoMap.put("INFO_282_4", 4); // 票据不可用
        infoMap.put("INFO_282_5", 5); // 验签未通过
        infoMap.put("INFO_282_6", 6); // 报文数据不正确
        // 专户
        infoMap.put("INFO_292_1", 1); // 正常
        infoMap.put("INFO_292_2", 2); // 账户类型不符
        infoMap.put("INFO_292_3", 3); // 已收款
        infoMap.put("INFO_292_4", 4); // 票据不可用
        infoMap.put("INFO_292_5", 5); // 验签未通过
        infoMap.put("INFO_292_6", 6); // 报文数据不正确
        // 分成
        infoMap.put("INFO_2102_1", 1); // 正常
        infoMap.put("INFO_2102_2", 2); // 账户类型不符
        infoMap.put("INFO_2102_3", 3); // 已收款
        infoMap.put("INFO_2102_4", 4); // 票据不可用
        infoMap.put("INFO_2102_5", 5); // 验签未通过
        infoMap.put("INFO_2102_6", 6); // 报文数据不正确
        // 交警二八分成
        infoMap.put("INFO_2105_1", 1); // 正常
        infoMap.put("INFO_2105_2", 2); // 没有需要付款的细单
        infoMap.put("INFO_2105_3", 3); // 验签未通过
        infoMap.put("INFO_2105_4", 4); // 报文数据不正确
        // 基础信息
        infoMap.put("INFO_2106_1", 1); // 正常
        infoMap.put("INFO_2106_2", 2); // 没有行政区划信息
        infoMap.put("INFO_2106_3", 3); // 没有单位编码信息
        infoMap.put("INFO_2106_5", 5); // 验签未通过
        infoMap.put("INFO_2106_6", 6); // 报文数据不正确
    }

    //电子缴款书
    public static int getEticketNumCode(String info) {
        if (!info.contains("2112")) return -1;
        Integer code = infoMap.get("" + info);
        return (code == null) ? -1 : code;
    }

    // 国库
    public static int getPayFiscCode(String info) {
        if (!info.contains("282")) return -1;
        Integer code = infoMap.get("" + info);
        return (code == null) ? -1 : code;
    }

    // 交管二八分成
    public static int getIllegalactivityScaleCode(String info) {
        if (!info.contains("2015")) return -1;
        Integer code = infoMap.get("" + info);
        return (code == null) ? -1 : code;
    }

    //划解分成
    public static int getPayDivideCode(String info) {
        if (!info.contains("2102")) return -1;
        Integer code = infoMap.get("" + info);
        return (code == null) ? -1 : code;
    }

    //化解专户
    public static int getPaySpecialCode(String info) {
        if (!info.contains("292")) return -1;
        Integer code = infoMap.get("" + info);
        return (code == null) ? -1 : code;
    }

    //滞纳金
    public static int getPunishStateInfoCode(String info) {
        if (!info.contains("275")) return -1;
        Integer code = infoMap.get("" + info);
        return (code == null) ? -1 : code;

    }

    //处罚决定书
    public static int getIllegalactivityInfoCode(String info) {
        if (!info.contains("272")) return -1;
        Integer code = infoMap.get("" + info);
        return (code == null) ? -1 : code;
    }

    //学生缴费
    public static int getStudentCOde(String info) {
        if (!info.contains("262")) return -1;
        Integer code = infoMap.get("" + info);
        return (code == null) ? -1 : code;
    }

    //缴款书手工票
    public static int getChargeBillCode(String info) {
        if (!info.contains("225")) return -1;
        Integer code = infoMap.get("" + info);
        return (code == null) ? -1 : code;
    }

    //缴款书
    public static int getChargeBillTwoCode(String info) {
        if (!info.contains("222")) return -1;
        Integer code = infoMap.get("" + info);
        return (code == null) ? -1 : code;
    }
    //退付书
    public static int getBackBillCode(String info) {
        if (!info.contains("232")) return -1;
        Integer code = infoMap.get("" + info);
        return (code == null) ? -1 : code;
    }
}
